docs: 渐进式插件教程(L0→L5)+ DESIGN.md 视觉规范 + plugin-template 脚手架
This commit is contained in:
@@ -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')
|
||||
}
|
||||
})
|
||||
Reference in New Issue
Block a user