SDK 与扩展 API

TradingAI 提供 Dart (tradingai_api) 与 Rust (wasm_plugin_sdk) 两套扩展开发方案。

扩展类型对比

类型引擎清单通信权限SDK
Dart/Stdiodart / nativeplugin.yamlJSON-RPC over stdio需声明 permissionstradingai_api
WASMwasmmanifest.jsonC-ABI 函数WASM 沙箱wasm_plugin_sdk
Webviewwebviewmanifest.json同宿主同宿主-
外部进程stdiomanifest.jsonstdio需 command-

tradingai_api(Dart)

Dart 扩展通过 TradingAIPlugin 基类与 TradingAIContext 与宿主通信,使用 JSON-RPC over stdio。

基础用法

dart
import 'package:tradingai_api/tradingai_api.dart';

void main() => MyPlugin().run();

class MyPlugin extends TradingAIPlugin {
  @override
  Future<void> onActivate(TradingAIContext context) async {
    await context.window.showMessage('Hello!');
    await context.fs.writeString('/tmp/out.txt', 'data');
  }
}

TradingAIContext 16 类 API

API主要能力
fsreadString, writeString, exists, list, downloadFile
httpget, post, put, delete, patch, head
shellrun, spawn, writeStdin, kill, onStdout/onStderr/onExit
windowshowMessage, showQuickPick, showInputBox, createOutputChannel, createTerminal, openUrl, createWebviewPanel
editorgetActiveDocumentUri, insertText, replaceText, getSelections, setSelections, onDidChangeSelections, getSelectedText, replaceSelection
workspacegetConfiguration, onDidOpenTextDocument, onDidChangeTextDocument, onDidChangeConfiguration
commandsregisterCommand
statusBarcreateItem, updateItem, disposeItem
toolbarregisterItem, unregisterItem, onTap
extensionsgetExtension, onDidActivate
marketsubscribe, unsubscribe, getQuote, onQuoteUpdate
chartaddIndicator, removeIndicator, addDrawing
alertscreate, list, delete, onTriggered
portfoliogetPositions, getBalance
sduiPanelcreatePanel, updatePanel, disposePanel, onAction

参考示例:extensions/market_dashboard_plugin 演示全部 16 类 API。

wasm_plugin_sdk(Rust)

WASM 扩展使用 C-ABI 函数导出,仅支持 i32 参数与返回值。价格与百分比需定点编码。

定点编码

rust
encoded = (value × 10000) as i32
decoded = encoded as f64 / 10000.0

例如:价格 152.35 编码为 1_523_500,百分比 2% 编码为 20_000。

Plugin trait 与宏

rust
use tradingai_plugin_sdk::*;

struct MyPlugin;
impl Plugin for MyPlugin {
    fn activate(_ctx: &PluginContext) -> ActivateResult { SUCCESS }
    fn deactivate(_ctx: &PluginContext) -> ActivateResult { SUCCESS }
}
export_plugin!(MyPlugin);

宏会导出 plugin_activateplugin_deactivate

示例扩展

extensions/ta_calculator_plugin:技术分析计算器,演示 SMA、EMA、RSI、MACD、Bollinger、ATR、Fibonacci 及风险管理函数。

编译:cargo build --target wasm32-unknown-unknown --release

C-ABI 函数完整列表见 WASM SDK 参考

示例扩展索引

详见 示例索引 页面,包含功能说明、API 列表及关键代码位置。

  • market_dashboard_plugin:Dart,16 类 API 综合演示
  • ta_calculator_plugin:WASM,技术指标与风险管理