docs: 渐进式插件教程(L0→L5)+ DESIGN.md 视觉规范 + plugin-template 脚手架

This commit is contained in:
Rick Ye
2026-09-11 02:18:01 +08:00
parent 8e4b5496e8
commit 4ed31a34fc
16 changed files with 844 additions and 1 deletions
+43
View File
@@ -0,0 +1,43 @@
// 主进程侧:Agent 能力(pi 工具/命令/事件)+ 设置声明 + 内联 UI。
// 日志规范见 docs/plugins/06-self-diagnosis.md:激活时 info 一条能力清单,一切 catch 记 error。
import { definePlugin } from '@aso/plugin-sdk'
export default definePlugin((api) => {
const log = api.log
log.info('activated', { manifest: api.manifest.version })
// ---- 设置(用户可配置;值为宿主持久化) ----
api.ui.registerSettings({
items: [
{ type: 'string', key: 'greeting', label: '问候语', default: 'Hello', placeholder: 'Hello' },
{ type: 'boolean', key: 'verbose', label: '详细日志', default: false }
]
})
let values = api.ui.getSettingValues()
api.ui.onSettingsChange((next) => {
values = next
log.info('settings changed', { greeting: next.greeting })
})
api.ui.onSettingsAction((key) => {
log.info('settings action', { key })
})
// ---- Agent 工具示例 ----
api.pi.registerTool({
name: 'my_plugin_ping',
description: '返回问候语(示例工具:把这段换成真正的能力)',
parameters: {},
async execute() {
log.debug('ping called', { verbose: values.verbose })
return { output: `${values.greeting ?? 'Hello'} from my-plugin` }
}
})
// ---- 面板/视图组件在 renderer.mjs(JSX 构建见 README);无 UI 需求可整段去掉 ----
log.info('ready', { hasRenderer: true })
return () => {
log.info('disposed')
}
})