@tencent-ai/codebuddy-code 2.67.0 → 2.68.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/CHANGELOG.md +26 -0
- package/dist/codebuddy-headless.js +53 -53
- package/dist/codebuddy.js +93 -64
- package/dist/web-ui/assets/index-BoMlEqUE.js +439 -0
- package/dist/web-ui/assets/index-Dt1puyHn.css +32 -0
- package/dist/web-ui/docs/cn/cli/acp.md +152 -0
- package/dist/web-ui/docs/cn/cli/agent-teams.md +327 -0
- package/dist/web-ui/docs/cn/cli/bash-sandboxing.md +290 -0
- package/dist/web-ui/docs/cn/cli/best-practices.md +554 -0
- package/dist/web-ui/docs/cn/cli/channels-reference.md +293 -0
- package/dist/web-ui/docs/cn/cli/channels.md +215 -0
- package/dist/web-ui/docs/cn/cli/checkpointing.md +51 -0
- package/dist/web-ui/docs/cn/cli/cli-reference.md +187 -0
- package/dist/web-ui/docs/cn/cli/common-workflows.md +1013 -0
- package/dist/web-ui/docs/cn/cli/costs.md +174 -0
- package/dist/web-ui/docs/cn/cli/devcontainer.md +553 -0
- package/dist/web-ui/docs/cn/cli/env-vars.md +326 -0
- package/dist/web-ui/docs/cn/cli/gitlab-ci-cd.md +357 -0
- package/dist/web-ui/docs/cn/cli/headless.md +258 -0
- package/dist/web-ui/docs/cn/cli/hooks-guide.md +9 -0
- package/dist/web-ui/docs/cn/cli/hooks.md +805 -0
- package/dist/web-ui/docs/cn/cli/iam.md +530 -0
- package/dist/web-ui/docs/cn/cli/ide-integrations.md +92 -0
- package/dist/web-ui/docs/cn/cli/installation.md +291 -0
- package/dist/web-ui/docs/cn/cli/interactive-mode.md +233 -0
- package/dist/web-ui/docs/cn/cli/mcp.md +739 -0
- package/dist/web-ui/docs/cn/cli/memory.md +436 -0
- package/dist/web-ui/docs/cn/cli/models.md +356 -0
- package/dist/web-ui/docs/cn/cli/overview.md +100 -0
- package/dist/web-ui/docs/cn/cli/plugin-marketplaces.md +533 -0
- package/dist/web-ui/docs/cn/cli/plugins-reference.md +774 -0
- package/dist/web-ui/docs/cn/cli/plugins.md +689 -0
- package/dist/web-ui/docs/cn/cli/quickstart.md +249 -0
- package/dist/web-ui/docs/cn/cli/release-notes/README.md +199 -0
- package/dist/web-ui/docs/cn/cli/release-notes/v2.10.0.md +23 -0
- package/dist/web-ui/docs/cn/cli/release-notes/v2.10.1.md +5 -0
- package/dist/web-ui/docs/cn/cli/release-notes/v2.11.0.md +24 -0
- package/dist/web-ui/docs/cn/cli/release-notes/v2.12.0.md +21 -0
- package/dist/web-ui/docs/cn/cli/release-notes/v2.13.0.md +20 -0
- package/dist/web-ui/docs/cn/cli/release-notes/v2.14.0.md +22 -0
- package/dist/web-ui/docs/cn/cli/release-notes/v2.14.1.md +8 -0
- package/dist/web-ui/docs/cn/cli/release-notes/v2.15.0.md +18 -0
- package/dist/web-ui/docs/cn/cli/release-notes/v2.15.1.md +11 -0
- package/dist/web-ui/docs/cn/cli/release-notes/v2.16.0.md +20 -0
- package/dist/web-ui/docs/cn/cli/release-notes/v2.17.0.md +29 -0
- package/dist/web-ui/docs/cn/cli/release-notes/v2.18.0.md +17 -0
- package/dist/web-ui/docs/cn/cli/release-notes/v2.19.0.md +11 -0
- package/dist/web-ui/docs/cn/cli/release-notes/v2.19.1.md +14 -0
- package/dist/web-ui/docs/cn/cli/release-notes/v2.19.2.md +11 -0
- package/dist/web-ui/docs/cn/cli/release-notes/v2.20.0.md +23 -0
- package/dist/web-ui/docs/cn/cli/release-notes/v2.20.1.md +15 -0
- package/dist/web-ui/docs/cn/cli/release-notes/v2.21.0.md +13 -0
- package/dist/web-ui/docs/cn/cli/release-notes/v2.22.0.md +16 -0
- package/dist/web-ui/docs/cn/cli/release-notes/v2.23.0.md +20 -0
- package/dist/web-ui/docs/cn/cli/release-notes/v2.23.2.md +5 -0
- package/dist/web-ui/docs/cn/cli/release-notes/v2.23.3.md +5 -0
- package/dist/web-ui/docs/cn/cli/release-notes/v2.23.4.md +15 -0
- package/dist/web-ui/docs/cn/cli/release-notes/v2.23.5.md +11 -0
- package/dist/web-ui/docs/cn/cli/release-notes/v2.24.0.md +17 -0
- package/dist/web-ui/docs/cn/cli/release-notes/v2.25.0.md +18 -0
- package/dist/web-ui/docs/cn/cli/release-notes/v2.25.1.md +21 -0
- package/dist/web-ui/docs/cn/cli/release-notes/v2.26.0.md +18 -0
- package/dist/web-ui/docs/cn/cli/release-notes/v2.27.0.md +16 -0
- package/dist/web-ui/docs/cn/cli/release-notes/v2.27.1.md +16 -0
- package/dist/web-ui/docs/cn/cli/release-notes/v2.27.2.md +7 -0
- package/dist/web-ui/docs/cn/cli/release-notes/v2.27.3.md +15 -0
- package/dist/web-ui/docs/cn/cli/release-notes/v2.28.0.md +26 -0
- package/dist/web-ui/docs/cn/cli/release-notes/v2.28.1.md +5 -0
- package/dist/web-ui/docs/cn/cli/release-notes/v2.29.0.md +35 -0
- package/dist/web-ui/docs/cn/cli/release-notes/v2.3.1.md +16 -0
- package/dist/web-ui/docs/cn/cli/release-notes/v2.30.0.md +19 -0
- package/dist/web-ui/docs/cn/cli/release-notes/v2.30.1.md +5 -0
- package/dist/web-ui/docs/cn/cli/release-notes/v2.31.0.md +51 -0
- package/dist/web-ui/docs/cn/cli/release-notes/v2.31.1.md +11 -0
- package/dist/web-ui/docs/cn/cli/release-notes/v2.31.2.md +16 -0
- package/dist/web-ui/docs/cn/cli/release-notes/v2.32.0.md +19 -0
- package/dist/web-ui/docs/cn/cli/release-notes/v2.33.0.md +28 -0
- package/dist/web-ui/docs/cn/cli/release-notes/v2.33.1.md +7 -0
- package/dist/web-ui/docs/cn/cli/release-notes/v2.36.3.md +17 -0
- package/dist/web-ui/docs/cn/cli/release-notes/v2.37.0.md +15 -0
- package/dist/web-ui/docs/cn/cli/release-notes/v2.37.1.md +15 -0
- package/dist/web-ui/docs/cn/cli/release-notes/v2.37.10.md +5 -0
- package/dist/web-ui/docs/cn/cli/release-notes/v2.37.11.md +8 -0
- package/dist/web-ui/docs/cn/cli/release-notes/v2.37.12.md +14 -0
- package/dist/web-ui/docs/cn/cli/release-notes/v2.37.13.md +11 -0
- package/dist/web-ui/docs/cn/cli/release-notes/v2.37.14.md +24 -0
- package/dist/web-ui/docs/cn/cli/release-notes/v2.37.15.md +11 -0
- package/dist/web-ui/docs/cn/cli/release-notes/v2.37.16.md +9 -0
- package/dist/web-ui/docs/cn/cli/release-notes/v2.37.17.md +5 -0
- package/dist/web-ui/docs/cn/cli/release-notes/v2.37.18.md +9 -0
- package/dist/web-ui/docs/cn/cli/release-notes/v2.37.19.md +5 -0
- package/dist/web-ui/docs/cn/cli/release-notes/v2.37.2.md +28 -0
- package/dist/web-ui/docs/cn/cli/release-notes/v2.37.20.md +8 -0
- package/dist/web-ui/docs/cn/cli/release-notes/v2.37.3.md +22 -0
- package/dist/web-ui/docs/cn/cli/release-notes/v2.37.4.md +19 -0
- package/dist/web-ui/docs/cn/cli/release-notes/v2.37.5.md +5 -0
- package/dist/web-ui/docs/cn/cli/release-notes/v2.37.6.md +5 -0
- package/dist/web-ui/docs/cn/cli/release-notes/v2.37.7.md +5 -0
- package/dist/web-ui/docs/cn/cli/release-notes/v2.37.8.md +5 -0
- package/dist/web-ui/docs/cn/cli/release-notes/v2.37.9.md +8 -0
- package/dist/web-ui/docs/cn/cli/release-notes/v2.38.0.md +22 -0
- package/dist/web-ui/docs/cn/cli/release-notes/v2.38.1.md +6 -0
- package/dist/web-ui/docs/cn/cli/release-notes/v2.38.2.md +9 -0
- package/dist/web-ui/docs/cn/cli/release-notes/v2.39.0.md +18 -0
- package/dist/web-ui/docs/cn/cli/release-notes/v2.4.0.md +19 -0
- package/dist/web-ui/docs/cn/cli/release-notes/v2.40.0.md +20 -0
- package/dist/web-ui/docs/cn/cli/release-notes/v2.40.1.md +6 -0
- package/dist/web-ui/docs/cn/cli/release-notes/v2.41.0.md +15 -0
- package/dist/web-ui/docs/cn/cli/release-notes/v2.41.1.md +6 -0
- package/dist/web-ui/docs/cn/cli/release-notes/v2.41.2.md +5 -0
- package/dist/web-ui/docs/cn/cli/release-notes/v2.41.3.md +8 -0
- package/dist/web-ui/docs/cn/cli/release-notes/v2.41.4.md +5 -0
- package/dist/web-ui/docs/cn/cli/release-notes/v2.41.5.md +10 -0
- package/dist/web-ui/docs/cn/cli/release-notes/v2.41.6.md +9 -0
- package/dist/web-ui/docs/cn/cli/release-notes/v2.41.7.md +14 -0
- package/dist/web-ui/docs/cn/cli/release-notes/v2.41.8.md +18 -0
- package/dist/web-ui/docs/cn/cli/release-notes/v2.42.0.md +39 -0
- package/dist/web-ui/docs/cn/cli/release-notes/v2.42.1.md +8 -0
- package/dist/web-ui/docs/cn/cli/release-notes/v2.42.3.md +18 -0
- package/dist/web-ui/docs/cn/cli/release-notes/v2.43.0.md +27 -0
- package/dist/web-ui/docs/cn/cli/release-notes/v2.43.1.md +27 -0
- package/dist/web-ui/docs/cn/cli/release-notes/v2.44.0.md +11 -0
- package/dist/web-ui/docs/cn/cli/release-notes/v2.44.1.md +22 -0
- package/dist/web-ui/docs/cn/cli/release-notes/v2.45.0.md +34 -0
- package/dist/web-ui/docs/cn/cli/release-notes/v2.45.1.md +7 -0
- package/dist/web-ui/docs/cn/cli/release-notes/v2.46.0.md +12 -0
- package/dist/web-ui/docs/cn/cli/release-notes/v2.47.0.md +20 -0
- package/dist/web-ui/docs/cn/cli/release-notes/v2.48.0.md +32 -0
- package/dist/web-ui/docs/cn/cli/release-notes/v2.48.1.md +11 -0
- package/dist/web-ui/docs/cn/cli/release-notes/v2.49.0.md +26 -0
- package/dist/web-ui/docs/cn/cli/release-notes/v2.49.1.md +14 -0
- package/dist/web-ui/docs/cn/cli/release-notes/v2.49.2.md +39 -0
- package/dist/web-ui/docs/cn/cli/release-notes/v2.49.3.md +7 -0
- package/dist/web-ui/docs/cn/cli/release-notes/v2.49.5.md +11 -0
- package/dist/web-ui/docs/cn/cli/release-notes/v2.49.6.md +9 -0
- package/dist/web-ui/docs/cn/cli/release-notes/v2.49.7.md +7 -0
- package/dist/web-ui/docs/cn/cli/release-notes/v2.5.0.md +24 -0
- package/dist/web-ui/docs/cn/cli/release-notes/v2.50.0.md +25 -0
- package/dist/web-ui/docs/cn/cli/release-notes/v2.50.1.md +9 -0
- package/dist/web-ui/docs/cn/cli/release-notes/v2.50.2.md +11 -0
- package/dist/web-ui/docs/cn/cli/release-notes/v2.50.3.md +5 -0
- package/dist/web-ui/docs/cn/cli/release-notes/v2.50.4.md +17 -0
- package/dist/web-ui/docs/cn/cli/release-notes/v2.50.5.md +16 -0
- package/dist/web-ui/docs/cn/cli/release-notes/v2.50.6.md +15 -0
- package/dist/web-ui/docs/cn/cli/release-notes/v2.50.7.md +15 -0
- package/dist/web-ui/docs/cn/cli/release-notes/v2.51.0.md +24 -0
- package/dist/web-ui/docs/cn/cli/release-notes/v2.51.1.md +17 -0
- package/dist/web-ui/docs/cn/cli/release-notes/v2.51.2.md +5 -0
- package/dist/web-ui/docs/cn/cli/release-notes/v2.52.0.md +30 -0
- package/dist/web-ui/docs/cn/cli/release-notes/v2.52.1.md +28 -0
- package/dist/web-ui/docs/cn/cli/release-notes/v2.52.2.md +12 -0
- package/dist/web-ui/docs/cn/cli/release-notes/v2.52.3.md +13 -0
- package/dist/web-ui/docs/cn/cli/release-notes/v2.52.4.md +27 -0
- package/dist/web-ui/docs/cn/cli/release-notes/v2.52.5.md +21 -0
- package/dist/web-ui/docs/cn/cli/release-notes/v2.52.6.md +7 -0
- package/dist/web-ui/docs/cn/cli/release-notes/v2.53.0.md +29 -0
- package/dist/web-ui/docs/cn/cli/release-notes/v2.54.0.md +26 -0
- package/dist/web-ui/docs/cn/cli/release-notes/v2.55.0.md +21 -0
- package/dist/web-ui/docs/cn/cli/release-notes/v2.55.1.md +13 -0
- package/dist/web-ui/docs/cn/cli/release-notes/v2.56.0.md +20 -0
- package/dist/web-ui/docs/cn/cli/release-notes/v2.56.1.md +5 -0
- package/dist/web-ui/docs/cn/cli/release-notes/v2.57.0.md +32 -0
- package/dist/web-ui/docs/cn/cli/release-notes/v2.57.1.md +10 -0
- package/dist/web-ui/docs/cn/cli/release-notes/v2.58.0.md +34 -0
- package/dist/web-ui/docs/cn/cli/release-notes/v2.59.0.md +28 -0
- package/dist/web-ui/docs/cn/cli/release-notes/v2.6.0.md +5 -0
- package/dist/web-ui/docs/cn/cli/release-notes/v2.6.1.md +10 -0
- package/dist/web-ui/docs/cn/cli/release-notes/v2.60.0.md +20 -0
- package/dist/web-ui/docs/cn/cli/release-notes/v2.61.0.md +29 -0
- package/dist/web-ui/docs/cn/cli/release-notes/v2.61.1.md +5 -0
- package/dist/web-ui/docs/cn/cli/release-notes/v2.61.2.md +6 -0
- package/dist/web-ui/docs/cn/cli/release-notes/v2.61.3.md +13 -0
- package/dist/web-ui/docs/cn/cli/release-notes/v2.62.0.md +21 -0
- package/dist/web-ui/docs/cn/cli/release-notes/v2.62.1.md +11 -0
- package/dist/web-ui/docs/cn/cli/release-notes/v2.63.0.md +19 -0
- package/dist/web-ui/docs/cn/cli/release-notes/v2.63.1.md +5 -0
- package/dist/web-ui/docs/cn/cli/release-notes/v2.63.2.md +7 -0
- package/dist/web-ui/docs/cn/cli/release-notes/v2.63.3.md +6 -0
- package/dist/web-ui/docs/cn/cli/release-notes/v2.63.4.md +8 -0
- package/dist/web-ui/docs/cn/cli/release-notes/v2.63.5.md +6 -0
- package/dist/web-ui/docs/cn/cli/release-notes/v2.64.0.md +37 -0
- package/dist/web-ui/docs/cn/cli/release-notes/v2.64.1.md +6 -0
- package/dist/web-ui/docs/cn/cli/release-notes/v2.64.2.md +11 -0
- package/dist/web-ui/docs/cn/cli/release-notes/v2.65.0.md +19 -0
- package/dist/web-ui/docs/cn/cli/release-notes/v2.65.1.md +11 -0
- package/dist/web-ui/docs/cn/cli/release-notes/v2.66.0.md +15 -0
- package/dist/web-ui/docs/cn/cli/release-notes/v2.66.1.md +14 -0
- package/dist/web-ui/docs/cn/cli/release-notes/v2.66.2.md +5 -0
- package/dist/web-ui/docs/cn/cli/release-notes/v2.67.0.md +33 -0
- package/dist/web-ui/docs/cn/cli/release-notes/v2.7.0.md +16 -0
- package/dist/web-ui/docs/cn/cli/release-notes/v2.8.0.md +18 -0
- package/dist/web-ui/docs/cn/cli/release-notes/v2.8.1.md +17 -0
- package/dist/web-ui/docs/cn/cli/release-notes/v2.8.2.md +5 -0
- package/dist/web-ui/docs/cn/cli/release-notes/v2.8.3.md +14 -0
- package/dist/web-ui/docs/cn/cli/release-notes/v2.8.4.md +9 -0
- package/dist/web-ui/docs/cn/cli/release-notes/v2.8.5.md +5 -0
- package/dist/web-ui/docs/cn/cli/release-notes/v2.8.6.md +14 -0
- package/dist/web-ui/docs/cn/cli/release-notes/v2.9.0.md +5 -0
- package/dist/web-ui/docs/cn/cli/remote-control.md +247 -0
- package/dist/web-ui/docs/cn/cli/sandboxing.md +316 -0
- package/dist/web-ui/docs/cn/cli/scheduled-tasks.md +161 -0
- package/dist/web-ui/docs/cn/cli/sdk-custom-tools.md +1195 -0
- package/dist/web-ui/docs/cn/cli/sdk-demos.md +347 -0
- package/dist/web-ui/docs/cn/cli/sdk-hooks.md +803 -0
- package/dist/web-ui/docs/cn/cli/sdk-mcp.md +643 -0
- package/dist/web-ui/docs/cn/cli/sdk-permissions.md +501 -0
- package/dist/web-ui/docs/cn/cli/sdk-python.md +783 -0
- package/dist/web-ui/docs/cn/cli/sdk-sessions.md +332 -0
- package/dist/web-ui/docs/cn/cli/sdk-typescript.md +759 -0
- package/dist/web-ui/docs/cn/cli/sdk.md +1105 -0
- package/dist/web-ui/docs/cn/cli/security.md +387 -0
- package/dist/web-ui/docs/cn/cli/settings.md +602 -0
- package/dist/web-ui/docs/cn/cli/skills.md +448 -0
- package/dist/web-ui/docs/cn/cli/slash-commands.md +397 -0
- package/dist/web-ui/docs/cn/cli/statusline.md +525 -0
- package/dist/web-ui/docs/cn/cli/sub-agents.md +634 -0
- package/dist/web-ui/docs/cn/cli/terminal-config.md +77 -0
- package/dist/web-ui/docs/cn/cli/tools-reference.md +99 -0
- package/dist/web-ui/docs/cn/cli/troubleshooting.md +190 -0
- package/dist/web-ui/docs/cn/cli/web-ui.md +164 -0
- package/dist/web-ui/docs/cn/cli/wecom-bot-setup.md +274 -0
- package/dist/web-ui/docs/cn/cli/worktree.md +660 -0
- package/dist/web-ui/docs/en/cli/acp.md +126 -0
- package/dist/web-ui/docs/en/cli/agent-teams.md +327 -0
- package/dist/web-ui/docs/en/cli/bash-sandboxing.md +357 -0
- package/dist/web-ui/docs/en/cli/best-practices.md +554 -0
- package/dist/web-ui/docs/en/cli/channels-reference.md +293 -0
- package/dist/web-ui/docs/en/cli/channels.md +215 -0
- package/dist/web-ui/docs/en/cli/checkpointing.md +53 -0
- package/dist/web-ui/docs/en/cli/cli-reference.md +187 -0
- package/dist/web-ui/docs/en/cli/common-workflows.md +1011 -0
- package/dist/web-ui/docs/en/cli/costs.md +174 -0
- package/dist/web-ui/docs/en/cli/devcontainer.md +553 -0
- package/dist/web-ui/docs/en/cli/env-vars.md +326 -0
- package/dist/web-ui/docs/en/cli/gitlab-ci-cd.md +357 -0
- package/dist/web-ui/docs/en/cli/headless.md +258 -0
- package/dist/web-ui/docs/en/cli/hooks-guide.md +9 -0
- package/dist/web-ui/docs/en/cli/hooks.md +801 -0
- package/dist/web-ui/docs/en/cli/iam.md +526 -0
- package/dist/web-ui/docs/en/cli/ide-integrations.md +92 -0
- package/dist/web-ui/docs/en/cli/installation.md +266 -0
- package/dist/web-ui/docs/en/cli/interactive-mode.md +233 -0
- package/dist/web-ui/docs/en/cli/mcp.md +739 -0
- package/dist/web-ui/docs/en/cli/memory.md +436 -0
- package/dist/web-ui/docs/en/cli/models.md +355 -0
- package/dist/web-ui/docs/en/cli/overview.md +100 -0
- package/dist/web-ui/docs/en/cli/plugin-marketplaces.md +534 -0
- package/dist/web-ui/docs/en/cli/plugins-reference.md +774 -0
- package/dist/web-ui/docs/en/cli/plugins.md +688 -0
- package/dist/web-ui/docs/en/cli/quickstart.md +249 -0
- package/dist/web-ui/docs/en/cli/release-notes/README.md +193 -0
- package/dist/web-ui/docs/en/cli/release-notes/v2.10.0.md +23 -0
- package/dist/web-ui/docs/en/cli/release-notes/v2.10.1.md +5 -0
- package/dist/web-ui/docs/en/cli/release-notes/v2.11.0.md +24 -0
- package/dist/web-ui/docs/en/cli/release-notes/v2.12.0.md +21 -0
- package/dist/web-ui/docs/en/cli/release-notes/v2.13.0.md +20 -0
- package/dist/web-ui/docs/en/cli/release-notes/v2.14.0.md +22 -0
- package/dist/web-ui/docs/en/cli/release-notes/v2.14.1.md +8 -0
- package/dist/web-ui/docs/en/cli/release-notes/v2.15.0.md +18 -0
- package/dist/web-ui/docs/en/cli/release-notes/v2.15.1.md +11 -0
- package/dist/web-ui/docs/en/cli/release-notes/v2.16.0.md +20 -0
- package/dist/web-ui/docs/en/cli/release-notes/v2.17.0.md +29 -0
- package/dist/web-ui/docs/en/cli/release-notes/v2.18.0.md +17 -0
- package/dist/web-ui/docs/en/cli/release-notes/v2.19.0.md +11 -0
- package/dist/web-ui/docs/en/cli/release-notes/v2.19.1.md +14 -0
- package/dist/web-ui/docs/en/cli/release-notes/v2.19.2.md +11 -0
- package/dist/web-ui/docs/en/cli/release-notes/v2.20.0.md +23 -0
- package/dist/web-ui/docs/en/cli/release-notes/v2.20.1.md +15 -0
- package/dist/web-ui/docs/en/cli/release-notes/v2.21.0.md +13 -0
- package/dist/web-ui/docs/en/cli/release-notes/v2.22.0.md +16 -0
- package/dist/web-ui/docs/en/cli/release-notes/v2.23.0.md +41 -0
- package/dist/web-ui/docs/en/cli/release-notes/v2.23.2.md +5 -0
- package/dist/web-ui/docs/en/cli/release-notes/v2.23.3.md +5 -0
- package/dist/web-ui/docs/en/cli/release-notes/v2.23.4.md +15 -0
- package/dist/web-ui/docs/en/cli/release-notes/v2.23.5.md +11 -0
- package/dist/web-ui/docs/en/cli/release-notes/v2.24.0.md +17 -0
- package/dist/web-ui/docs/en/cli/release-notes/v2.25.0.md +18 -0
- package/dist/web-ui/docs/en/cli/release-notes/v2.25.1.md +21 -0
- package/dist/web-ui/docs/en/cli/release-notes/v2.26.0.md +18 -0
- package/dist/web-ui/docs/en/cli/release-notes/v2.27.0.md +16 -0
- package/dist/web-ui/docs/en/cli/release-notes/v2.27.1.md +16 -0
- package/dist/web-ui/docs/en/cli/release-notes/v2.27.2.md +7 -0
- package/dist/web-ui/docs/en/cli/release-notes/v2.27.3.md +15 -0
- package/dist/web-ui/docs/en/cli/release-notes/v2.28.0.md +26 -0
- package/dist/web-ui/docs/en/cli/release-notes/v2.28.1.md +5 -0
- package/dist/web-ui/docs/en/cli/release-notes/v2.29.0.md +35 -0
- package/dist/web-ui/docs/en/cli/release-notes/v2.3.1.md +16 -0
- package/dist/web-ui/docs/en/cli/release-notes/v2.30.0.md +19 -0
- package/dist/web-ui/docs/en/cli/release-notes/v2.30.1.md +5 -0
- package/dist/web-ui/docs/en/cli/release-notes/v2.31.0.md +51 -0
- package/dist/web-ui/docs/en/cli/release-notes/v2.31.1.md +11 -0
- package/dist/web-ui/docs/en/cli/release-notes/v2.31.2.md +16 -0
- package/dist/web-ui/docs/en/cli/release-notes/v2.32.0.md +19 -0
- package/dist/web-ui/docs/en/cli/release-notes/v2.33.0.md +28 -0
- package/dist/web-ui/docs/en/cli/release-notes/v2.33.1.md +7 -0
- package/dist/web-ui/docs/en/cli/release-notes/v2.34.0.md +27 -0
- package/dist/web-ui/docs/en/cli/release-notes/v2.34.1.md +7 -0
- package/dist/web-ui/docs/en/cli/release-notes/v2.35.0.md +22 -0
- package/dist/web-ui/docs/en/cli/release-notes/v2.36.0.md +23 -0
- package/dist/web-ui/docs/en/cli/release-notes/v2.36.1.md +5 -0
- package/dist/web-ui/docs/en/cli/release-notes/v2.36.2.md +22 -0
- package/dist/web-ui/docs/en/cli/release-notes/v2.36.3.md +17 -0
- package/dist/web-ui/docs/en/cli/release-notes/v2.37.0.md +15 -0
- package/dist/web-ui/docs/en/cli/release-notes/v2.37.1.md +15 -0
- package/dist/web-ui/docs/en/cli/release-notes/v2.37.10.md +5 -0
- package/dist/web-ui/docs/en/cli/release-notes/v2.37.11.md +8 -0
- package/dist/web-ui/docs/en/cli/release-notes/v2.37.12.md +14 -0
- package/dist/web-ui/docs/en/cli/release-notes/v2.37.13.md +11 -0
- package/dist/web-ui/docs/en/cli/release-notes/v2.37.14.md +24 -0
- package/dist/web-ui/docs/en/cli/release-notes/v2.37.15.md +11 -0
- package/dist/web-ui/docs/en/cli/release-notes/v2.37.16.md +9 -0
- package/dist/web-ui/docs/en/cli/release-notes/v2.37.17.md +5 -0
- package/dist/web-ui/docs/en/cli/release-notes/v2.37.18.md +9 -0
- package/dist/web-ui/docs/en/cli/release-notes/v2.37.19.md +5 -0
- package/dist/web-ui/docs/en/cli/release-notes/v2.37.2.md +28 -0
- package/dist/web-ui/docs/en/cli/release-notes/v2.37.20.md +8 -0
- package/dist/web-ui/docs/en/cli/release-notes/v2.37.3.md +22 -0
- package/dist/web-ui/docs/en/cli/release-notes/v2.37.4.md +19 -0
- package/dist/web-ui/docs/en/cli/release-notes/v2.37.5.md +5 -0
- package/dist/web-ui/docs/en/cli/release-notes/v2.37.6.md +5 -0
- package/dist/web-ui/docs/en/cli/release-notes/v2.37.7.md +5 -0
- package/dist/web-ui/docs/en/cli/release-notes/v2.37.8.md +5 -0
- package/dist/web-ui/docs/en/cli/release-notes/v2.37.9.md +8 -0
- package/dist/web-ui/docs/en/cli/release-notes/v2.38.0.md +22 -0
- package/dist/web-ui/docs/en/cli/release-notes/v2.38.1.md +6 -0
- package/dist/web-ui/docs/en/cli/release-notes/v2.38.2.md +9 -0
- package/dist/web-ui/docs/en/cli/release-notes/v2.39.0.md +18 -0
- package/dist/web-ui/docs/en/cli/release-notes/v2.4.0.md +19 -0
- package/dist/web-ui/docs/en/cli/release-notes/v2.40.0.md +20 -0
- package/dist/web-ui/docs/en/cli/release-notes/v2.40.1.md +6 -0
- package/dist/web-ui/docs/en/cli/release-notes/v2.41.0.md +15 -0
- package/dist/web-ui/docs/en/cli/release-notes/v2.41.1.md +6 -0
- package/dist/web-ui/docs/en/cli/release-notes/v2.41.2.md +5 -0
- package/dist/web-ui/docs/en/cli/release-notes/v2.41.3.md +8 -0
- package/dist/web-ui/docs/en/cli/release-notes/v2.41.4.md +5 -0
- package/dist/web-ui/docs/en/cli/release-notes/v2.41.5.md +10 -0
- package/dist/web-ui/docs/en/cli/release-notes/v2.41.6.md +9 -0
- package/dist/web-ui/docs/en/cli/release-notes/v2.41.7.md +14 -0
- package/dist/web-ui/docs/en/cli/release-notes/v2.41.8.md +18 -0
- package/dist/web-ui/docs/en/cli/release-notes/v2.42.0.md +39 -0
- package/dist/web-ui/docs/en/cli/release-notes/v2.42.1.md +8 -0
- package/dist/web-ui/docs/en/cli/release-notes/v2.42.3.md +18 -0
- package/dist/web-ui/docs/en/cli/release-notes/v2.43.0.md +27 -0
- package/dist/web-ui/docs/en/cli/release-notes/v2.43.1.md +27 -0
- package/dist/web-ui/docs/en/cli/release-notes/v2.44.0.md +11 -0
- package/dist/web-ui/docs/en/cli/release-notes/v2.44.1.md +22 -0
- package/dist/web-ui/docs/en/cli/release-notes/v2.45.0.md +34 -0
- package/dist/web-ui/docs/en/cli/release-notes/v2.45.1.md +7 -0
- package/dist/web-ui/docs/en/cli/release-notes/v2.46.0.md +12 -0
- package/dist/web-ui/docs/en/cli/release-notes/v2.47.0.md +20 -0
- package/dist/web-ui/docs/en/cli/release-notes/v2.48.0.md +32 -0
- package/dist/web-ui/docs/en/cli/release-notes/v2.48.1.md +11 -0
- package/dist/web-ui/docs/en/cli/release-notes/v2.49.0.md +26 -0
- package/dist/web-ui/docs/en/cli/release-notes/v2.49.1.md +14 -0
- package/dist/web-ui/docs/en/cli/release-notes/v2.49.2.md +39 -0
- package/dist/web-ui/docs/en/cli/release-notes/v2.49.3.md +7 -0
- package/dist/web-ui/docs/en/cli/release-notes/v2.49.5.md +11 -0
- package/dist/web-ui/docs/en/cli/release-notes/v2.49.6.md +9 -0
- package/dist/web-ui/docs/en/cli/release-notes/v2.49.7.md +7 -0
- package/dist/web-ui/docs/en/cli/release-notes/v2.5.0.md +24 -0
- package/dist/web-ui/docs/en/cli/release-notes/v2.50.0.md +25 -0
- package/dist/web-ui/docs/en/cli/release-notes/v2.50.1.md +9 -0
- package/dist/web-ui/docs/en/cli/release-notes/v2.50.2.md +11 -0
- package/dist/web-ui/docs/en/cli/release-notes/v2.50.3.md +5 -0
- package/dist/web-ui/docs/en/cli/release-notes/v2.50.4.md +17 -0
- package/dist/web-ui/docs/en/cli/release-notes/v2.50.5.md +16 -0
- package/dist/web-ui/docs/en/cli/release-notes/v2.50.6.md +15 -0
- package/dist/web-ui/docs/en/cli/release-notes/v2.50.7.md +15 -0
- package/dist/web-ui/docs/en/cli/release-notes/v2.51.0.md +24 -0
- package/dist/web-ui/docs/en/cli/release-notes/v2.51.1.md +17 -0
- package/dist/web-ui/docs/en/cli/release-notes/v2.51.2.md +5 -0
- package/dist/web-ui/docs/en/cli/release-notes/v2.52.0.md +30 -0
- package/dist/web-ui/docs/en/cli/release-notes/v2.52.1.md +28 -0
- package/dist/web-ui/docs/en/cli/release-notes/v2.52.2.md +12 -0
- package/dist/web-ui/docs/en/cli/release-notes/v2.52.3.md +13 -0
- package/dist/web-ui/docs/en/cli/release-notes/v2.52.4.md +27 -0
- package/dist/web-ui/docs/en/cli/release-notes/v2.52.5.md +21 -0
- package/dist/web-ui/docs/en/cli/release-notes/v2.52.6.md +7 -0
- package/dist/web-ui/docs/en/cli/release-notes/v2.53.0.md +29 -0
- package/dist/web-ui/docs/en/cli/release-notes/v2.54.0.md +26 -0
- package/dist/web-ui/docs/en/cli/release-notes/v2.55.0.md +21 -0
- package/dist/web-ui/docs/en/cli/release-notes/v2.55.1.md +13 -0
- package/dist/web-ui/docs/en/cli/release-notes/v2.56.0.md +20 -0
- package/dist/web-ui/docs/en/cli/release-notes/v2.56.1.md +5 -0
- package/dist/web-ui/docs/en/cli/release-notes/v2.57.0.md +32 -0
- package/dist/web-ui/docs/en/cli/release-notes/v2.57.1.md +10 -0
- package/dist/web-ui/docs/en/cli/release-notes/v2.58.0.md +34 -0
- package/dist/web-ui/docs/en/cli/release-notes/v2.59.0.md +28 -0
- package/dist/web-ui/docs/en/cli/release-notes/v2.6.0.md +5 -0
- package/dist/web-ui/docs/en/cli/release-notes/v2.6.1.md +10 -0
- package/dist/web-ui/docs/en/cli/release-notes/v2.60.0.md +20 -0
- package/dist/web-ui/docs/en/cli/release-notes/v2.61.0.md +29 -0
- package/dist/web-ui/docs/en/cli/release-notes/v2.61.1.md +5 -0
- package/dist/web-ui/docs/en/cli/release-notes/v2.61.2.md +6 -0
- package/dist/web-ui/docs/en/cli/release-notes/v2.61.3.md +13 -0
- package/dist/web-ui/docs/en/cli/release-notes/v2.62.0.md +21 -0
- package/dist/web-ui/docs/en/cli/release-notes/v2.62.1.md +11 -0
- package/dist/web-ui/docs/en/cli/release-notes/v2.63.0.md +19 -0
- package/dist/web-ui/docs/en/cli/release-notes/v2.63.1.md +5 -0
- package/dist/web-ui/docs/en/cli/release-notes/v2.63.2.md +7 -0
- package/dist/web-ui/docs/en/cli/release-notes/v2.63.3.md +6 -0
- package/dist/web-ui/docs/en/cli/release-notes/v2.63.4.md +8 -0
- package/dist/web-ui/docs/en/cli/release-notes/v2.63.5.md +6 -0
- package/dist/web-ui/docs/en/cli/release-notes/v2.64.0.md +37 -0
- package/dist/web-ui/docs/en/cli/release-notes/v2.64.1.md +6 -0
- package/dist/web-ui/docs/en/cli/release-notes/v2.64.2.md +11 -0
- package/dist/web-ui/docs/en/cli/release-notes/v2.65.0.md +19 -0
- package/dist/web-ui/docs/en/cli/release-notes/v2.65.1.md +11 -0
- package/dist/web-ui/docs/en/cli/release-notes/v2.66.0.md +15 -0
- package/dist/web-ui/docs/en/cli/release-notes/v2.66.1.md +14 -0
- package/dist/web-ui/docs/en/cli/release-notes/v2.66.2.md +5 -0
- package/dist/web-ui/docs/en/cli/release-notes/v2.67.0.md +33 -0
- package/dist/web-ui/docs/en/cli/release-notes/v2.7.0.md +16 -0
- package/dist/web-ui/docs/en/cli/release-notes/v2.8.0.md +18 -0
- package/dist/web-ui/docs/en/cli/release-notes/v2.8.1.md +17 -0
- package/dist/web-ui/docs/en/cli/release-notes/v2.8.2.md +5 -0
- package/dist/web-ui/docs/en/cli/release-notes/v2.8.3.md +14 -0
- package/dist/web-ui/docs/en/cli/release-notes/v2.8.4.md +9 -0
- package/dist/web-ui/docs/en/cli/release-notes/v2.8.5.md +5 -0
- package/dist/web-ui/docs/en/cli/release-notes/v2.8.6.md +14 -0
- package/dist/web-ui/docs/en/cli/release-notes/v2.9.0.md +5 -0
- package/dist/web-ui/docs/en/cli/remote-control.md +247 -0
- package/dist/web-ui/docs/en/cli/sandboxing.md +316 -0
- package/dist/web-ui/docs/en/cli/scheduled-tasks.md +160 -0
- package/dist/web-ui/docs/en/cli/sdk-custom-tools.md +1131 -0
- package/dist/web-ui/docs/en/cli/sdk-demos.md +347 -0
- package/dist/web-ui/docs/en/cli/sdk-hooks.md +813 -0
- package/dist/web-ui/docs/en/cli/sdk-mcp.md +645 -0
- package/dist/web-ui/docs/en/cli/sdk-permissions.md +461 -0
- package/dist/web-ui/docs/en/cli/sdk-python.md +797 -0
- package/dist/web-ui/docs/en/cli/sdk-sessions.md +340 -0
- package/dist/web-ui/docs/en/cli/sdk-typescript.md +770 -0
- package/dist/web-ui/docs/en/cli/sdk.md +1103 -0
- package/dist/web-ui/docs/en/cli/security.md +388 -0
- package/dist/web-ui/docs/en/cli/settings.md +602 -0
- package/dist/web-ui/docs/en/cli/skills.md +448 -0
- package/dist/web-ui/docs/en/cli/slash-commands.md +397 -0
- package/dist/web-ui/docs/en/cli/statusline.md +525 -0
- package/dist/web-ui/docs/en/cli/sub-agents.md +621 -0
- package/dist/web-ui/docs/en/cli/terminal-config.md +77 -0
- package/dist/web-ui/docs/en/cli/tools-reference.md +99 -0
- package/dist/web-ui/docs/en/cli/troubleshooting.md +190 -0
- package/dist/web-ui/docs/en/cli/web-ui.md +164 -0
- package/dist/web-ui/docs/en/cli/wecom-bot-setup.md +274 -0
- package/dist/web-ui/docs/en/cli/worktree.md +660 -0
- package/dist/web-ui/docs/search-index-en.json +1 -0
- package/dist/web-ui/docs/search-index-zh.json +1 -0
- package/dist/web-ui/docs/sidebar-en.json +1 -0
- package/dist/web-ui/docs/sidebar-zh.json +1 -0
- package/dist/web-ui/index.html +2 -2
- package/package.json +1 -1
- package/product.cloudhosted.json +2 -2
- package/product.internal.json +2 -2
- package/product.ioa.json +2 -2
- package/product.json +3 -3
- package/product.selfhosted.json +2 -2
- package/dist/web-ui/assets/index-BPT-qRRx.js +0 -411
- package/dist/web-ui/assets/index-f_ibHSHw.css +0 -32
|
@@ -0,0 +1,293 @@
|
|
|
1
|
+
# Channels 参考 [Beta]
|
|
2
|
+
|
|
3
|
+
> **Beta 功能**:Channels 目前处于 Beta 阶段,协议和接口可能会根据反馈进行调整。
|
|
4
|
+
|
|
5
|
+
Channel 是一种特殊的 MCP 服务器,可以将外部事件(Webhook、聊天消息、监控告警等)推送到 CodeBuddy Code 会话中,让 CodeBuddy Code 对终端外部发生的事情做出反应。
|
|
6
|
+
|
|
7
|
+
## 概述
|
|
8
|
+
|
|
9
|
+
Channel 运行在与 CodeBuddy Code 相同的机器上,通过 stdio 与 CodeBuddy Code 通信。CodeBuddy Code 将其作为子进程启动。
|
|
10
|
+
|
|
11
|
+
典型的使用场景:
|
|
12
|
+
|
|
13
|
+
- **聊天平台**(Telegram、Discord):插件本地运行,轮询平台 API 获取新消息,转发给 CodeBuddy Code
|
|
14
|
+
- **Webhook**(CI、监控):服务器监听本地 HTTP 端口,接收外部系统的 POST 请求,推送给 CodeBuddy Code
|
|
15
|
+
|
|
16
|
+
Channel 分为两种模式:
|
|
17
|
+
|
|
18
|
+
| 模式 | 说明 |
|
|
19
|
+
|------|------|
|
|
20
|
+
| 单向 | 只转发事件给 CodeBuddy Code(告警、Webhook),在本地会话中处理 |
|
|
21
|
+
| 双向 | 额外暴露 reply 工具,让 CodeBuddy Code 可以回复消息 |
|
|
22
|
+
|
|
23
|
+
## 使用 Channel
|
|
24
|
+
|
|
25
|
+
### 启动
|
|
26
|
+
|
|
27
|
+
使用 `--channels` 参数指定要加载的 channel:
|
|
28
|
+
|
|
29
|
+
```bash
|
|
30
|
+
# 加载插件类型的 channel
|
|
31
|
+
codebuddy --channels plugin:fakechat@claude-plugins-official
|
|
32
|
+
|
|
33
|
+
# 加载 .mcp.json 中配置的 channel server
|
|
34
|
+
codebuddy --channels server:webhook
|
|
35
|
+
|
|
36
|
+
# 加载多个 channel(逗号分隔)
|
|
37
|
+
codebuddy --channels plugin:telegram@claude-plugins-official,plugin:discord@claude-plugins-official
|
|
38
|
+
```
|
|
39
|
+
|
|
40
|
+
### 开发模式
|
|
41
|
+
|
|
42
|
+
自定义 channel 在初始阶段使用 `--dangerously-load-development-channels` 标志来测试。此标志允许任何 channel 运行,无需在允许列表中:
|
|
43
|
+
|
|
44
|
+
```bash
|
|
45
|
+
codebuddy --dangerously-load-development-channels server:my-webhook
|
|
46
|
+
```
|
|
47
|
+
|
|
48
|
+
此标志仅绕过允许列表检查,`channelsEnabled` 组织策略仍然生效。一旦 channel 提交到官方市场并通过安全审查,就会被添加到允许列表,之后可以直接使用 `--channels` 加载。
|
|
49
|
+
|
|
50
|
+
### 会话中的 Channel 消息
|
|
51
|
+
|
|
52
|
+
Channel 消息以 `<channel>` 标签的形式注入到 CodeBuddy Code 的上下文中:
|
|
53
|
+
|
|
54
|
+
```xml
|
|
55
|
+
<channel source="fakechat" sender="web" chat_id="1">你好,请帮我看看这个问题</channel>
|
|
56
|
+
```
|
|
57
|
+
|
|
58
|
+
在 TUI 中,channel 消息以友好格式显示:
|
|
59
|
+
|
|
60
|
+
```
|
|
61
|
+
#fakechat · web: 你好,请帮我看看这个问题
|
|
62
|
+
```
|
|
63
|
+
|
|
64
|
+
### 设置
|
|
65
|
+
|
|
66
|
+
在 `settings.json` 中可以控制 channel 功能:
|
|
67
|
+
|
|
68
|
+
```json
|
|
69
|
+
{
|
|
70
|
+
"channelsEnabled": true
|
|
71
|
+
}
|
|
72
|
+
```
|
|
73
|
+
|
|
74
|
+
设为 `false` 可完全禁用 channel 功能。
|
|
75
|
+
|
|
76
|
+
## 构建 Channel
|
|
77
|
+
|
|
78
|
+
### 基本要求
|
|
79
|
+
|
|
80
|
+
一个 channel server 需要:
|
|
81
|
+
|
|
82
|
+
1. 声明 `claude/channel` capability,让 CodeBuddy Code 注册通知监听器
|
|
83
|
+
2. 发送 `notifications/claude/channel` 事件
|
|
84
|
+
3. 通过 stdio transport 连接(CodeBuddy Code 将其作为子进程启动)
|
|
85
|
+
|
|
86
|
+
### 最小示例:Webhook 接收器
|
|
87
|
+
|
|
88
|
+
```ts
|
|
89
|
+
#!/usr/bin/env bun
|
|
90
|
+
import { Server } from '@modelcontextprotocol/sdk/server/index.js'
|
|
91
|
+
import { StdioServerTransport } from '@modelcontextprotocol/sdk/server/stdio.js'
|
|
92
|
+
|
|
93
|
+
const mcp = new Server(
|
|
94
|
+
{ name: 'webhook', version: '0.0.1' },
|
|
95
|
+
{
|
|
96
|
+
capabilities: { experimental: { 'claude/channel': {} } },
|
|
97
|
+
instructions: '来自 webhook 的事件以 <channel source="webhook" ...> 标签到达。单向通道,只需阅读并处理。',
|
|
98
|
+
},
|
|
99
|
+
)
|
|
100
|
+
|
|
101
|
+
await mcp.connect(new StdioServerTransport())
|
|
102
|
+
|
|
103
|
+
Bun.serve({
|
|
104
|
+
port: 8788,
|
|
105
|
+
hostname: '127.0.0.1',
|
|
106
|
+
async fetch(req) {
|
|
107
|
+
const body = await req.text()
|
|
108
|
+
await mcp.notification({
|
|
109
|
+
method: 'notifications/claude/channel',
|
|
110
|
+
params: {
|
|
111
|
+
content: body,
|
|
112
|
+
meta: { path: new URL(req.url).pathname, method: req.method },
|
|
113
|
+
},
|
|
114
|
+
})
|
|
115
|
+
return new Response('ok')
|
|
116
|
+
},
|
|
117
|
+
})
|
|
118
|
+
```
|
|
119
|
+
|
|
120
|
+
注册到 `.mcp.json`:
|
|
121
|
+
|
|
122
|
+
```json
|
|
123
|
+
{
|
|
124
|
+
"mcpServers": {
|
|
125
|
+
"webhook": { "command": "bun", "args": ["./webhook.ts"] }
|
|
126
|
+
}
|
|
127
|
+
}
|
|
128
|
+
```
|
|
129
|
+
|
|
130
|
+
## Server 配置选项
|
|
131
|
+
|
|
132
|
+
| 字段 | 类型 | 说明 |
|
|
133
|
+
|------|------|------|
|
|
134
|
+
| `capabilities.experimental['claude/channel']` | `object` | **必填**。始终为 `{}`。声明后 CodeBuddy Code 注册通知监听器 |
|
|
135
|
+
| `capabilities.experimental['claude/channel/permission']` | `object` | 可选。始终为 `{}`。声明此 channel 可以接收权限中继请求 |
|
|
136
|
+
| `capabilities.tools` | `object` | 双向 channel 需要。始终为 `{}`。标准 MCP 工具能力 |
|
|
137
|
+
| `instructions` | `string` | 推荐。注入到 system prompt,告诉 CodeBuddy Code 如何处理此 channel 的事件 |
|
|
138
|
+
|
|
139
|
+
## 通知格式
|
|
140
|
+
|
|
141
|
+
发送 `notifications/claude/channel` 通知时,params 包含两个字段:
|
|
142
|
+
|
|
143
|
+
| 字段 | 类型 | 说明 |
|
|
144
|
+
|------|------|------|
|
|
145
|
+
| `content` | `string` | 事件内容,成为 `<channel>` 标签的正文 |
|
|
146
|
+
| `meta` | `Record<string, string>` | 可选。每个键值对成为 `<channel>` 标签的属性。键名仅允许字母、数字和下划线,包含连字符或其他字符的键会被静默丢弃 |
|
|
147
|
+
|
|
148
|
+
示例:
|
|
149
|
+
|
|
150
|
+
```ts
|
|
151
|
+
await mcp.notification({
|
|
152
|
+
method: 'notifications/claude/channel',
|
|
153
|
+
params: {
|
|
154
|
+
content: 'build failed on main',
|
|
155
|
+
meta: { severity: 'high', run_id: '1234' },
|
|
156
|
+
},
|
|
157
|
+
})
|
|
158
|
+
```
|
|
159
|
+
|
|
160
|
+
到达 CodeBuddy Code 时的格式:
|
|
161
|
+
|
|
162
|
+
```xml
|
|
163
|
+
<channel source="webhook" severity="high" run_id="1234">
|
|
164
|
+
build failed on main
|
|
165
|
+
</channel>
|
|
166
|
+
```
|
|
167
|
+
|
|
168
|
+
## 暴露 Reply 工具
|
|
169
|
+
|
|
170
|
+
双向 channel 需要暴露标准 MCP 工具让 CodeBuddy Code 回复消息:
|
|
171
|
+
|
|
172
|
+
```ts
|
|
173
|
+
import { ListToolsRequestSchema, CallToolRequestSchema } from '@modelcontextprotocol/sdk/types.js'
|
|
174
|
+
|
|
175
|
+
mcp.setRequestHandler(ListToolsRequestSchema, async () => ({
|
|
176
|
+
tools: [{
|
|
177
|
+
name: 'reply',
|
|
178
|
+
description: '通过此 channel 发送回复消息',
|
|
179
|
+
inputSchema: {
|
|
180
|
+
type: 'object',
|
|
181
|
+
properties: {
|
|
182
|
+
chat_id: { type: 'string', description: '要回复的对话 ID' },
|
|
183
|
+
text: { type: 'string', description: '要发送的消息' },
|
|
184
|
+
},
|
|
185
|
+
required: ['chat_id', 'text'],
|
|
186
|
+
},
|
|
187
|
+
}],
|
|
188
|
+
}))
|
|
189
|
+
|
|
190
|
+
mcp.setRequestHandler(CallToolRequestSchema, async req => {
|
|
191
|
+
if (req.params.name === 'reply') {
|
|
192
|
+
const { chat_id, text } = req.params.arguments as { chat_id: string; text: string }
|
|
193
|
+
// 调用你的聊天平台 API 发送消息
|
|
194
|
+
await sendToPlatform(chat_id, text)
|
|
195
|
+
return { content: [{ type: 'text', text: 'sent' }] }
|
|
196
|
+
}
|
|
197
|
+
throw new Error(`unknown tool: ${req.params.name}`)
|
|
198
|
+
})
|
|
199
|
+
```
|
|
200
|
+
|
|
201
|
+
## 发送者安全管控
|
|
202
|
+
|
|
203
|
+
未设防的 channel 是 prompt 注入攻击向量。任何能访问你端点的人都可以向 CodeBuddy Code 注入文本。
|
|
204
|
+
|
|
205
|
+
在调用 `mcp.notification()` 之前,必须检查发送者身份:
|
|
206
|
+
|
|
207
|
+
```ts
|
|
208
|
+
const allowed = new Set(loadAllowlist())
|
|
209
|
+
|
|
210
|
+
// 在消息处理器中,发送通知之前:
|
|
211
|
+
if (!allowed.has(message.from.id)) { // 检查发送者 ID,而非群组 ID
|
|
212
|
+
return // 静默丢弃
|
|
213
|
+
}
|
|
214
|
+
await mcp.notification({ ... })
|
|
215
|
+
```
|
|
216
|
+
|
|
217
|
+
**重要**:始终基于发送者身份(`message.from.id`)而非聊天室身份(`message.chat.id`)进行验证。在群聊中,这两个值不同,按群组验证会让群内任何人都能向会话注入消息。
|
|
218
|
+
|
|
219
|
+
## 权限中继
|
|
220
|
+
|
|
221
|
+
当 CodeBuddy Code 调用需要审批的工具(如 `Bash`、`Write`、`Edit`)时,本地终端会打开权限对话框。双向 channel 可以选择同时接收这个提示,让你在远程设备上审批或拒绝。
|
|
222
|
+
|
|
223
|
+
本地终端和远程 channel 的对话框同时打开,**先到的回答生效**,另一个自动关闭。
|
|
224
|
+
|
|
225
|
+
### 启用权限中继
|
|
226
|
+
|
|
227
|
+
在 Server 构造器中添加 `claude/channel/permission`:
|
|
228
|
+
|
|
229
|
+
```ts
|
|
230
|
+
capabilities: {
|
|
231
|
+
experimental: {
|
|
232
|
+
'claude/channel': {},
|
|
233
|
+
'claude/channel/permission': {}, // 启用权限中继
|
|
234
|
+
},
|
|
235
|
+
tools: {},
|
|
236
|
+
},
|
|
237
|
+
```
|
|
238
|
+
|
|
239
|
+
### 权限请求字段
|
|
240
|
+
|
|
241
|
+
CodeBuddy Code 发送 `notifications/claude/channel/permission_request`,包含以下字段:
|
|
242
|
+
|
|
243
|
+
| 字段 | 说明 |
|
|
244
|
+
|------|------|
|
|
245
|
+
| `request_id` | 5 个小写字母(排除 `l`),用于匹配回复 |
|
|
246
|
+
| `tool_name` | CodeBuddy Code 要使用的工具名,如 `Bash`、`Write` |
|
|
247
|
+
| `description` | 工具调用的可读描述 |
|
|
248
|
+
| `input_preview` | 工具参数的 JSON 字符串,截断到 200 字符 |
|
|
249
|
+
|
|
250
|
+
### 发送裁决
|
|
251
|
+
|
|
252
|
+
你的 channel 需要发送 `notifications/claude/channel/permission` 通知:
|
|
253
|
+
|
|
254
|
+
```ts
|
|
255
|
+
await mcp.notification({
|
|
256
|
+
method: 'notifications/claude/channel/permission',
|
|
257
|
+
params: {
|
|
258
|
+
request_id: '<收到的 request_id>',
|
|
259
|
+
behavior: 'allow', // 或 'deny'
|
|
260
|
+
},
|
|
261
|
+
})
|
|
262
|
+
```
|
|
263
|
+
|
|
264
|
+
### 处理入站裁决
|
|
265
|
+
|
|
266
|
+
在入站消息处理器中识别 `yes <id>` 或 `no <id>` 格式的回复:
|
|
267
|
+
|
|
268
|
+
```ts
|
|
269
|
+
// 匹配 "y abcde", "yes abcde", "n abcde", "no abcde"
|
|
270
|
+
// [a-km-z] 是 CodeBuddy Code 使用的 ID 字母表(小写,跳过 'l')
|
|
271
|
+
const PERMISSION_REPLY_RE = /^\s*(y|yes|n|no)\s+([a-km-z]{5})\s*$/i
|
|
272
|
+
|
|
273
|
+
const m = PERMISSION_REPLY_RE.exec(message.text)
|
|
274
|
+
if (m) {
|
|
275
|
+
await mcp.notification({
|
|
276
|
+
method: 'notifications/claude/channel/permission',
|
|
277
|
+
params: {
|
|
278
|
+
request_id: m[2].toLowerCase(),
|
|
279
|
+
behavior: m[1].toLowerCase().startsWith('y') ? 'allow' : 'deny',
|
|
280
|
+
},
|
|
281
|
+
})
|
|
282
|
+
return // 作为裁决处理,不转发为聊天
|
|
283
|
+
}
|
|
284
|
+
```
|
|
285
|
+
|
|
286
|
+
## 打包为插件
|
|
287
|
+
|
|
288
|
+
将 channel 包装为插件可以方便分享和安装。用户通过 `/plugin install` 安装,然后用 `--channels plugin:<name>@<marketplace>` 启用。
|
|
289
|
+
|
|
290
|
+
## 参考
|
|
291
|
+
|
|
292
|
+
- [fakechat 示例](https://github.com/anthropics/claude-plugins-official/tree/main/external_plugins/fakechat):完整的双向 channel 实现,包含 Web UI、文件附件和 reply 工具
|
|
293
|
+
- [MCP 协议](https://modelcontextprotocol.io):channel 基于 MCP 协议实现
|
|
@@ -0,0 +1,215 @@
|
|
|
1
|
+
# Channels:将外部事件推送到会话中 [Beta]
|
|
2
|
+
|
|
3
|
+
> **Beta 功能**:Channels 目前处于 Beta 阶段,功能和接口可能会根据反馈进行调整。
|
|
4
|
+
|
|
5
|
+
Channel 是一种 MCP 服务器,可以将消息、告警和 Webhook 推送到你正在运行的 CodeBuddy Code 会话中,让 CodeBuddy Code 在你不在终端时也能对外部事件做出反应。
|
|
6
|
+
|
|
7
|
+
Channel 可以是双向的:CodeBuddy Code 读取事件后通过同一 channel 回复,就像一个聊天桥。事件仅在会话打开时到达,如需持续运行,可以在后台进程或持久终端中运行 CodeBuddy Code。
|
|
8
|
+
|
|
9
|
+
你可以通过安装插件或使用内置 channel 来启用。微信、Telegram、Discord 以及 fakechat 演示都已支持。
|
|
10
|
+
|
|
11
|
+
当 CodeBuddy Code 通过 channel 回复时,终端会显示工具调用和确认(如"sent"),实际回复内容出现在对应的聊天平台上。
|
|
12
|
+
|
|
13
|
+
本页涵盖:
|
|
14
|
+
|
|
15
|
+
* [支持的 Channel](#支持的-channel):微信、Telegram、Discord 以及 fakechat 设置
|
|
16
|
+
* [快速开始](#快速开始):使用微信 channel 快速体验
|
|
17
|
+
* [安全机制](#安全机制):发送者白名单和配对流程
|
|
18
|
+
* [组织管控](#组织管控):为团队和企业启用 channel
|
|
19
|
+
* [Channel 与其他功能的对比](#功能对比)
|
|
20
|
+
|
|
21
|
+
要构建自己的 channel,请参阅 [Channels 参考](./channels-reference.md)。
|
|
22
|
+
|
|
23
|
+
## 支持的 Channel
|
|
24
|
+
|
|
25
|
+
### 微信(内置)
|
|
26
|
+
|
|
27
|
+
微信 channel 是 CodeBuddy Code 内置的,无需安装插件。通过微信 ClawBot 实现双向消息通信,支持文本、图片和文件收发。
|
|
28
|
+
|
|
29
|
+
**前提条件**:
|
|
30
|
+
- 微信版本 iOS 8.0.70 及以上
|
|
31
|
+
- 在微信中启用 ClawBot 插件(微信 → 我 → 设置 → 插件 → ClawBot)
|
|
32
|
+
|
|
33
|
+
**扫码绑定**:
|
|
34
|
+
|
|
35
|
+
1. 在 CodeBuddy Code 中执行 `/remote-control wechat` 或 `/remote-control` 选择 wechat
|
|
36
|
+
2. 终端显示二维码(如果二维码显示异常,会提供浏览器链接)
|
|
37
|
+
3. 用微信扫描二维码并确认
|
|
38
|
+
4. 绑定成功后自动开始接收消息
|
|
39
|
+
|
|
40
|
+
**使用**:
|
|
41
|
+
|
|
42
|
+
绑定后,在微信 ClawBot 对话中发送消息,消息会自动出现在 CodeBuddy Code 会话中:
|
|
43
|
+
|
|
44
|
+
```
|
|
45
|
+
#wechat · user_id: 你好,帮我看一下这个 bug
|
|
46
|
+
```
|
|
47
|
+
|
|
48
|
+
CodeBuddy Code 会处理消息并通过 `WechatReply` 工具回复,回复内容出现在微信中。
|
|
49
|
+
|
|
50
|
+
支持的消息类型:
|
|
51
|
+
|
|
52
|
+
| 类型 | 接收 | 发送 |
|
|
53
|
+
|------|------|------|
|
|
54
|
+
| 文本 | 支持 | 支持 |
|
|
55
|
+
| 图片 | 支持(自动下载解密到本地) | 支持(自动加密上传到 CDN) |
|
|
56
|
+
| 文件 | 支持 | 支持 |
|
|
57
|
+
|
|
58
|
+
**凭证管理**:
|
|
59
|
+
|
|
60
|
+
扫码成功后凭证保存在 `~/.codebuddy/channels/wechat/credentials.json`。下次启动时自动使用已保存的凭证,无需重新扫码。
|
|
61
|
+
|
|
62
|
+
```bash
|
|
63
|
+
# 查看连接状态
|
|
64
|
+
/remote-control wechat status
|
|
65
|
+
|
|
66
|
+
# 断开连接
|
|
67
|
+
/remote-control wechat stop
|
|
68
|
+
|
|
69
|
+
# 重新连接(使用已保存凭证)
|
|
70
|
+
/remote-control wechat start
|
|
71
|
+
```
|
|
72
|
+
|
|
73
|
+
### Telegram
|
|
74
|
+
|
|
75
|
+
需要安装插件。查看完整 [Telegram 插件源码](https://github.com/anthropics/claude-plugins-official/tree/main/external_plugins/telegram)。
|
|
76
|
+
|
|
77
|
+
1. 在 Telegram 中通过 [BotFather](https://t.me/BotFather) 创建一个 bot,获取 token
|
|
78
|
+
2. 安装插件:`/plugin install telegram@claude-plugins-official`
|
|
79
|
+
3. 配置 token:`/telegram:configure <token>`
|
|
80
|
+
4. 启动:`codebuddy --channels plugin:telegram@claude-plugins-official`
|
|
81
|
+
5. 向 bot 发消息获取配对码,执行 `/telegram:access pair <code>` 完成配对
|
|
82
|
+
|
|
83
|
+
### Discord
|
|
84
|
+
|
|
85
|
+
需要安装插件。查看完整 [Discord 插件源码](https://github.com/anthropics/claude-plugins-official/tree/main/external_plugins/discord)。
|
|
86
|
+
|
|
87
|
+
1. 在 [Discord 开发者门户](https://discord.com/developers/applications) 创建应用和 bot
|
|
88
|
+
2. 启用 Message Content Intent,邀请 bot 到服务器
|
|
89
|
+
3. 安装插件:`/plugin install discord@claude-plugins-official`
|
|
90
|
+
4. 配置 token:`/discord:configure <token>`
|
|
91
|
+
5. 启动:`codebuddy --channels plugin:discord@claude-plugins-official`
|
|
92
|
+
6. DM bot 获取配对码,执行 `/discord:access pair <code>` 完成配对
|
|
93
|
+
|
|
94
|
+
### fakechat(演示)
|
|
95
|
+
|
|
96
|
+
fakechat 是官方支持的演示 channel,在 localhost 上运行一个聊天 UI,无需认证和外部服务。
|
|
97
|
+
|
|
98
|
+
```bash
|
|
99
|
+
# 安装
|
|
100
|
+
/plugin install fakechat@claude-plugins-official
|
|
101
|
+
|
|
102
|
+
# 启动
|
|
103
|
+
codebuddy --channels plugin:fakechat@claude-plugins-official
|
|
104
|
+
```
|
|
105
|
+
|
|
106
|
+
打开 `http://localhost:8787` 即可开始聊天。
|
|
107
|
+
|
|
108
|
+
## 快速开始
|
|
109
|
+
|
|
110
|
+
以微信 channel 为例,快速体验完整的双向通信流程:
|
|
111
|
+
|
|
112
|
+
**第 1 步:确保 ClawBot 已启用**
|
|
113
|
+
|
|
114
|
+
在微信中打开 **我 → 设置 → 插件**,找到 ClawBot 并启用。
|
|
115
|
+
|
|
116
|
+
**第 2 步:扫码绑定**
|
|
117
|
+
|
|
118
|
+
启动 CodeBuddy Code,执行:
|
|
119
|
+
|
|
120
|
+
```
|
|
121
|
+
/remote-control wechat
|
|
122
|
+
```
|
|
123
|
+
|
|
124
|
+
终端显示二维码。用微信扫描并确认绑定。
|
|
125
|
+
|
|
126
|
+
**第 3 步:发送消息**
|
|
127
|
+
|
|
128
|
+
在微信 ClawBot 对话中发送:
|
|
129
|
+
|
|
130
|
+
```
|
|
131
|
+
帮我看一下当前目录有什么文件
|
|
132
|
+
```
|
|
133
|
+
|
|
134
|
+
消息到达 CodeBuddy Code 会话,显示为:
|
|
135
|
+
|
|
136
|
+
```
|
|
137
|
+
#wechat · user_id: 帮我看一下当前目录有什么文件
|
|
138
|
+
```
|
|
139
|
+
|
|
140
|
+
CodeBuddy Code 执行任务后通过 `WechatReply` 工具回复,回复内容出现在微信中。
|
|
141
|
+
|
|
142
|
+
**第 4 步:发送图片**
|
|
143
|
+
|
|
144
|
+
在微信中发一张截图给 ClawBot,CodeBuddy Code 会自动下载并识别图片内容。你可以要求它编辑图片并发回:
|
|
145
|
+
|
|
146
|
+
```
|
|
147
|
+
给图片中的人物加一顶帽子
|
|
148
|
+
```
|
|
149
|
+
|
|
150
|
+
CodeBuddy Code 使用 ImageEdit 工具处理图片,然后通过 `WechatReply` 将编辑后的图片发送回微信。
|
|
151
|
+
|
|
152
|
+
## 安全机制
|
|
153
|
+
|
|
154
|
+
### 微信
|
|
155
|
+
|
|
156
|
+
微信 channel 通过 ClawBot 的扫码认证机制保证安全。只有扫码绑定的微信账号可以发送消息,其他人的消息会被静默丢弃。
|
|
157
|
+
|
|
158
|
+
凭证(包含 bot_token 和 account_id)保存在本地,权限设为 600(仅所有者可读写)。
|
|
159
|
+
|
|
160
|
+
### 插件 Channel
|
|
161
|
+
|
|
162
|
+
Telegram 和 Discord 等插件 channel 维护一个发送者白名单。通过配对流程添加信任的发送者:
|
|
163
|
+
|
|
164
|
+
1. 向 bot 发送任意消息
|
|
165
|
+
2. bot 回复配对码
|
|
166
|
+
3. 在 CodeBuddy Code 中确认配对码
|
|
167
|
+
4. 发送者 ID 加入白名单
|
|
168
|
+
|
|
169
|
+
白名单同时控制[权限中继](./channels-reference.md#权限中继)。通过 channel 回复的人可以审批或拒绝工具调用,因此只将信任的发送者加入白名单。
|
|
170
|
+
|
|
171
|
+
### 其他安全要素
|
|
172
|
+
|
|
173
|
+
- 仅在 `.mcp.json` 中配置不足以推送消息,还必须在 `--channels` 中指定
|
|
174
|
+
- 组织可以通过 `channelsEnabled` 设置统一管控
|
|
175
|
+
|
|
176
|
+
## 组织管控
|
|
177
|
+
|
|
178
|
+
Channel 功能受 `channelsEnabled` 设置控制:
|
|
179
|
+
|
|
180
|
+
| 计划类型 | 默认行为 |
|
|
181
|
+
|---------|---------|
|
|
182
|
+
| 个人用户 | 可用;用户通过 `--channels` 按会话启用 |
|
|
183
|
+
| 团队/企业 | 默认禁用,管理员需显式启用 |
|
|
184
|
+
|
|
185
|
+
### 为组织启用 Channel
|
|
186
|
+
|
|
187
|
+
管理员可以在 `settings.json` 中设置:
|
|
188
|
+
|
|
189
|
+
```json
|
|
190
|
+
{
|
|
191
|
+
"channelsEnabled": true
|
|
192
|
+
}
|
|
193
|
+
```
|
|
194
|
+
|
|
195
|
+
启用后,组织中的用户可以使用 `--channels` 将 channel 服务器接入各自的会话。如果设置被禁用,MCP 服务器仍然连接且工具可用,但 channel 消息不会到达。
|
|
196
|
+
|
|
197
|
+
## 功能对比
|
|
198
|
+
|
|
199
|
+
CodeBuddy Code 有多种连接外部系统的功能,各有适用场景:
|
|
200
|
+
|
|
201
|
+
| 功能 | 作用 | 适用场景 |
|
|
202
|
+
|------|------|---------|
|
|
203
|
+
| 标准 MCP 服务器 | CodeBuddy Code 在任务中查询它;不推送到会话 | 按需读取或查询系统 |
|
|
204
|
+
| Remote Control | 从远程控制本地会话 | 离开桌面时操控进行中的会话 |
|
|
205
|
+
| **Channel** | **将外部事件推送到已运行的本地会话** | **聊天桥、Webhook 接收、告警响应** |
|
|
206
|
+
|
|
207
|
+
Channel 通过将非 CodeBuddy Code 来源的事件推送到已运行的本地会话来填补空白:
|
|
208
|
+
|
|
209
|
+
* **聊天桥**:通过微信向 CodeBuddy Code 提问,回答出现在微信中,而实际工作在你的机器上运行,使用你的真实文件
|
|
210
|
+
* **Webhook 接收器**:CI、错误追踪器或部署管线的 Webhook 到达时,CodeBuddy Code 已经打开了你的文件并记住你在调试什么
|
|
211
|
+
|
|
212
|
+
## 下一步
|
|
213
|
+
|
|
214
|
+
* [构建自己的 Channel](./channels-reference.md):为还没有插件的系统创建 channel
|
|
215
|
+
* 使用 `/remote-control` 管理所有远程控制连接
|
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
# 检查点
|
|
2
|
+
|
|
3
|
+
## 概述
|
|
4
|
+
|
|
5
|
+
自动跟踪并回退 CodeBuddy 的编辑,快速恢复不需要的更改。
|
|
6
|
+
|
|
7
|
+
CodeBuddy Code 在您工作时会自动跟踪 CodeBuddy 对文件的编辑,让您能够快速撤销更改,并在出现问题时回退到之前的状态。
|
|
8
|
+
|
|
9
|
+
|
|
10
|
+
## 常见使用场景
|
|
11
|
+
|
|
12
|
+
检查点在以下情况下特别有用:
|
|
13
|
+
|
|
14
|
+
- **探索替代方案**:尝试不同的实现方式,而不会丢失起始点
|
|
15
|
+
- **从错误中恢复**:快速撤销引入 bug 或破坏功能的更改
|
|
16
|
+
- **功能迭代**:在知道可以恢复到可用状态的前提下,放心地进行各种尝试
|
|
17
|
+
|
|
18
|
+
---
|
|
19
|
+
|
|
20
|
+
## 限制
|
|
21
|
+
|
|
22
|
+
### Bash 命令的更改不会被跟踪
|
|
23
|
+
|
|
24
|
+
检查点不会跟踪通过 bash 命令修改的文件。例如,如果 CodeBuddy Code 运行:
|
|
25
|
+
|
|
26
|
+
```
|
|
27
|
+
rm file.txt
|
|
28
|
+
mv old.txt new.txt
|
|
29
|
+
cp source.txt dest.txt
|
|
30
|
+
```
|
|
31
|
+
|
|
32
|
+
这些文件修改无法通过回退功能撤销。只有通过 CodeBuddy 的文件编辑工具直接进行的编辑才会被跟踪。
|
|
33
|
+
|
|
34
|
+
### 外部更改不会被跟踪
|
|
35
|
+
|
|
36
|
+
检查点只跟踪在当前会话中被编辑过的文件。您在 CodeBuddy Code 之外手动对文件所做的更改,以及来自其他并发会话的编辑,通常不会被捕获,除非它们恰好修改了与当前会话相同的文件。
|
|
37
|
+
|
|
38
|
+
### 不能替代版本控制
|
|
39
|
+
|
|
40
|
+
检查点设计用于快速的会话级恢复。对于永久的版本历史和协作:
|
|
41
|
+
|
|
42
|
+
- 继续使用版本控制(如 Git)来管理提交、分支和长期历史
|
|
43
|
+
- 检查点是版本控制的补充,而非替代品
|
|
44
|
+
- 可以将检查点理解为"本地撤销",而 Git 是"永久历史"
|
|
45
|
+
|
|
46
|
+
---
|
|
47
|
+
|
|
48
|
+
## 另请参阅
|
|
49
|
+
|
|
50
|
+
- **[交互模式](interactive-mode.md)** - 键盘快捷键和会话控制
|
|
51
|
+
- **[斜杠命令](slash-commands.md)** - 使用 `/rewind` 访问检查点
|