插件清单格式
TradingAI 支持 manifest.json 与 plugin.yaml 两种清单格式,根据扩展引擎选择对应格式。
扩展类型与清单对应
| 引擎 | 清单文件 | 入口字段 |
|---|---|---|
| wasm | manifest.json | main (指向 .wasm) |
| dart / native | plugin.yaml | entry_point (bin/main.dart) |
| webview | manifest.json | main (指向 .html) |
| stdio | manifest.json | command + main (脚本路径) |
engine 规则
- wasm:main 必填,且必须以 .wasm 结尾
- dart / native:main 推荐 bin/main.dart,需有 pubspec.yaml
- webview:main 必须指向 .html 文件,可选 entryPoints
- stdio:command 必填,main 为脚本路径(如 .py、.js)
manifest.json
用于 WASM、Webview、stdio 扩展。
示例(WASM)
json
{
"id": "com.example.my-extension",
"name": "My Extension",
"version": "1.0.0",
"description": "A description of my extension",
"author": "Your Name",
"engine": "wasm",
"main": "target/wasm32-unknown-unknown/release/plugin.wasm",
"category": "indicators"
}
示例(Dart/Stdio 也用 manifest.json 时)
json
{
"id": "com.example.my-plugin",
"name": "My Plugin",
"version": "1.0.0",
"description": "Description",
"engine": "dart",
"main": "bin/main.dart"
}
字段说明
| 字段 | 必填 | 说明 |
|---|---|---|
| id | 是 | 反向域名格式,如 com.company.plugin |
| name | 是 | 显示名称 |
| version | 是 | 语义化版本,如 1.0.0 |
| description | 推荐 | 插件描述 |
| author | 推荐 | 作者名 |
| engine | 是 | wasm | native | dart | webview | stdio |
| main | 依 engine | 入口文件路径 |
| command | stdio 必填 | 可执行命令,如 python、node |
| category | 否 | indicators | trading | analysis | scanner | charting | notifications | other |
plugin.yaml
用于 Dart 扩展,支持更丰富的声明式配置。
完整示例
yaml
id: market_dashboard
name: 'Market Dashboard'
description: 'A comprehensive market dashboard plugin.'
version: '1.0.0'
author: 'TradingAI Team'
entry_point: 'bin/main.dart'
permissions:
- fileSystem:
- '${workspace}/**'
- '${extensionPath}/**'
- network:
- 'api.tradingai.com'
- shell:
- echo
- date
activationEvents:
- '*'
configuration:
- key: market_dashboard.watchSymbols
type: string
description: 'Comma-separated symbols to watch.'
default: 'AAPL,MSFT,GOOGL'
contributes:
commands:
- id: market_dashboard.openDashboard
title: 'Market Dashboard: Open Dashboard'
category: 'Market Dashboard'
keybindings:
- command: market_dashboard.openDashboard
key: 'ctrl+shift+d'
viewContainers:
sidebar:
- id: market_dashboard
title: 'Market Dashboard'
icon: 'dashboard'
order: 80
views:
market_dashboard:
- id: market_dashboard.overview
name: 'Market Overview'
order: 0
permissions 结构
- fileSystem:路径列表,支持 ${workspace}、${extensionPath}
- network:域名列表
- shell:允许的命令列表
activationEvents
*:启动时激活onView:viewId:打开指定视图时激活onCommand:commandId:执行命令时激活onLanguage:languageId:打开对应语言文件时激活
contributes
- commands:id, title, category
- keybindings:command, key, when
- viewContainers:sidebar 下的容器列表
- views:各容器内的视图
完整参考见 贡献点参考。