aboutsummaryrefslogtreecommitdiff
path: root/website/src/content/docs/zh-cn/plugins.mdx
diff options
context:
space:
mode:
authorOgulcan Celik <ogulcancelik@gmail.com>2026-07-21 21:01:27 +0300
committerOgulcan Celik <ogulcancelik@gmail.com>2026-07-21 21:01:27 +0300
commitbc064e9d034711ba40e4e42a0129934752f0b802 (patch)
treea3e767a6fb8f4545d329768f68c083b720afbc2b /website/src/content/docs/zh-cn/plugins.mdx
parent7c189003464fce851736096b309078aaff7640c7 (diff)
docs: finalize release docs and refresh agent skill
Diffstat (limited to 'website/src/content/docs/zh-cn/plugins.mdx')
-rw-r--r--website/src/content/docs/zh-cn/plugins.mdx34
1 files changed, 28 insertions, 6 deletions
diff --git a/website/src/content/docs/zh-cn/plugins.mdx b/website/src/content/docs/zh-cn/plugins.mdx
index a22e56b8..306bda53 100644
--- a/website/src/content/docs/zh-cn/plugins.mdx
+++ b/website/src/content/docs/zh-cn/plugins.mdx
@@ -62,6 +62,9 @@ command = ["npm", "ci"]
command = ["npm", "run", "build"]
platforms = ["linux", "macos"]
+[[startup]]
+command = ["node", "dist/restore.js"]
+
[[actions]]
id = "apply"
title = "Apply layout"
@@ -97,9 +100,9 @@ ASCII 字母、数字、冒号、下划线和连字符,但不能用点。每种
`plugin.id.action` 的形式。
用 `platforms = ["linux", "macos", "windows"]` 声明插件可以运行的平台。
-构建命令、动作、事件钩子、窗格和链接处理器也可以声明自己的 `platforms`;
-条目级的 platforms 覆盖顶层列表。没有顶层 `platforms` 的本地插件在链接
-时会给出警告。
+构建命令、启动钩子、动作、事件钩子、窗格和链接处理器也可以声明自己的
+`platforms`;条目级的 platforms 覆盖顶层列表。没有顶层 `platforms` 的本地
+插件在链接时会给出警告。
`command` 的值是 argv 数组。Herdr 不会通过 shell 运行它们,所以除非你的
命令自己启动 shell,否则没有 shell 展开。语言相关的行为放到你的脚本或
@@ -174,8 +177,12 @@ herdr plugin log list --plugin example.layout
`plugin install` 只接受 GitHub 简写,比如 `owner/repo/subdir`。它用 `git`
克隆,在交互式终端展示预览,运行受支持的构建命令,然后把检出保存到
Herdr 管理的插件数据下并注册。非交互式安装用 `--yes`。重新安装 GitHub
-管理的插件会替换该托管检出。不允许覆盖安装到本地链接的插件之上;请先
-unlink 或 uninstall 本地插件。`plugin install` 和 `plugin link` 会创建
+管理的插件会替换该托管检出。已安装和已链接的插件及其启用状态对当前用户
+全局生效,可在所有 Herdr 会话中使用。即使 Herdr 服务器没有运行,也可以通过
+`plugin install` 和 `plugin link` 注册插件。仅安装在 Herdr 0.7.3 命名会话中的
+插件必须重新 install 或 link;现有的插件配置和状态会保留。
+不允许覆盖安装到本地链接的插件之上;请先 unlink 或 uninstall 本地插件。
+`plugin install` 和 `plugin link` 会创建
插件的配置和状态目录,`plugin config-dir <id>` 打印配置目录,方便安装
文档和 shell 脚本使用。
@@ -203,6 +210,20 @@ Herdr socket 环境变量。插件作者应在文档中说明所需的系统工å
`cargo`、`npm`、`bun` 或 `lua`;Herdr 报告构建失败,但不会安装缺失的
工具链。
+## 启动钩子
+
+Herdr 恢复会话且 API socket 就绪后,会为每个已启用插件运行一次
+`[[startup]]` 命令。实时交接由新服务器接管时会再次运行,但客户端连接、
+配置重载以及插件 link 或 enable 时不会运行。Herdr 异步启动这些命令,并在
+普通插件命令日志中记录完成情况。启动钩子失败不会停止服务器。
+
+启动钩子是一次性初始化命令,不是受监督的守护进程。钩子应恢复插件自己的
+状态、调用所需的 Herdr API,然后退出。例如,插件可以把声明式 Agent 视图保存到
+`HERDR_PLUGIN_STATE_DIR`,再由启动钩子读取并重新应用。
+
+启动钩子会收到普通运行时插件环境和 `HERDR_PLUGIN_EVENT=startup`。安装预览会
+列出所有启动命令,让用户检查将自动运行的代码。
+
## 命令与环境
运行时命令以插件目录为工作目录执行。Herdr 注入 `HERDR_SOCKET_PATH`、
@@ -210,7 +231,8 @@ Herdr socket 环境变量。插件作者应在文档中说明所需的系统工å
`HERDR_PLUGIN_CONFIG_DIR`、`HERDR_PLUGIN_STATE_DIR`、
`HERDR_PLUGIN_CONTEXT_JSON`,以及可用时的 `HERDR_WORKSPACE_ID`、
`HERDR_TAB_ID` 和 `HERDR_PANE_ID`。动作命令还会收到
-`HERDR_PLUGIN_ACTION_ID`;事件钩子收到 `HERDR_PLUGIN_EVENT` 和
+`HERDR_PLUGIN_ACTION_ID`;启动钩子和事件钩子收到 `HERDR_PLUGIN_EVENT`
+(启动钩子中的值为 `startup`),事件钩子还会收到
`HERDR_PLUGIN_EVENT_JSON`;窗格命令收到 `HERDR_PLUGIN_ENTRYPOINT_ID`。
`HERDR_PLUGIN_ROOT` 是已安装或已链接的插件目录。不要把用户凭据或持久