Replies: 2 comments
|
补充一个「纯 Host 插件用绝对路径自启」的最小可复现示例。下面基于 loader 源码( 1) 一个零依赖的最小纯 Host 包,放在用户自己的目录(如 export const name = 'hello-tool'
// 零依赖:只使用 loader 注入的 ctx,不 import 任何 @deepseek-ai/* 包,
// 因此放在用户目录(而非 DSH 的 node_modules)里也能被解析。
export function apply(ctx) {
ctx.on('agent/status', (payload) => {
if (payload && payload.status === 'idle') {
console.log('[hello-tool] an agent went idle')
}
})
}导出 2) 用户预设 - id: hello-tool
name: 'G:\dsh-plugins\packages\hello-tool\index.mjs'loader 的
局限:
|
|
更正:本请求的多数诉求其实已经存在。 我后续通读了 launcher 源码(
所以「用户级、升级安全、开机自启」的插件目录是存在的,我之前把它当成缺口是错的,抱歉。 仍未确认的点(可能才是真正值得讨论的):把一个 |
Uh oh!
There was an error while loading. Please reload this page.
English summary: Feature request for a user-level, restart-persistent plugin directory — including client/GUI plugins — so community plugins can be dropped into a folder and auto-loaded without forking the deployment or rebuilding the web shell.
背景与痛点
我们用动态 Cordis 插件做了两个用户侧插件:
chime:回合完成 / 等待用户选择时播放提示音(纯 Client);attach-files:输入框「添加文件」按钮 + 文件选择器(Client UI + 少量 Host RPC)。它们很好用,但有一个共同痛点:DSH 重启后动态插件不自动加载,只能靠 git 仓库收源码 + 重启后人工 cordis_define / cordis_run 恢复。
目前的理解(可能不完整,欢迎指正)
请求的功能
希望提供一个用户级、升级安全、重启后自动加载的插件目录(类似 VSCode 的 ~/.vscode/extensions、Obsidian 的插件目录),并且覆盖 Client/GUI 插件。理想形态:
安全顾虑(我们理解)
我们理解动态插件「临时 + 需批准」是刻意设计的信任边界(开机自动执行任意代码的风险)。所以不要求「无脑执行任意 JS」,可以是更安全的形态,例如:
我们只是想表达:社区插件(尤其 GUI 类)目前缺少一个既省心、又升级安全的落地方式,希望团队考虑提供官方入口。
相关
谢谢!
All reactions